<HTML><HEAD>
<META NAME="copyright" CONTENT="Copyright (c) 1986-2005, Eiffel Software and others">
<META NAME="license" CONTENT="Eiffel Forum License v2 (see forum.txt)">
<META NAME="description" CONTENT="Special objects: homogeneous sequences of values, used to represent arrays and strings">
<META NAME="library" CONTENT="Free implementation of ELKS library">
<META NAME="keywords" CONTENT="Eiffel class">
<META NAME="keywords" CONTENT="Eiffel class">
<TITLE>special Flat contracts</TITLE></HEAD>
<BODY BGCOLOR="white">
<P ALIGN="CENTER">Automatic generation produced by ISE Eiffel</P>
<PRE><TABLE BORDER="1" ALIGN="CENTER"><TR><TD><A HREF="../class_list.html">Classes</A></TD><TD><A HREF="../cluster_list.html">Clusters</A></TD><TD><A HREF="../cluster_hierarchy.html">Cluster hierarchy</A></TD><TD><A HREF="special_chart.html">Chart</A></TD><TD><A HREF="special_links.html">Relations</A></TD><TD>Flat contracts</TD></TR></TABLE><B>indexing</B>
    description: "[
        Special objects: homogeneous sequences of values,
        used to represent arrays and strings
    ]"
    library: "Free implementation of ELKS library"
    copyright: "Copyright (c) 1986-2005, Eiffel Software and others"
    license: "Eiffel Forum License v2 (see forum.txt)"
    date: "$Date: 2008-05-24 02:24:07 +0200 (Sat, 24 May 2008) $"
    revision: "$Revision: 170 $"

<B>frozen</B> <B>class</B> <B>interface</B>
    <A HREF="../base/special_flatshort.html">SPECIAL</A> [T]


<B>create</B> 
    <A NAME="f_make"><A HREF="../base/special_flatshort.html#f_make">make</A> (n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Create a special object for </FONT>`n'<FONT COLOR="red"> entries.</FONT>
        <B>require</B>
            non_negative_argument: n &gt;= 0
        <B>ensure</B>
            area_allocated: <A HREF="../base/special_flatshort.html#f_count">count</A> = n
</A>
    <A NAME="f_make_from_native_array"><A HREF="../base/special_flatshort.html#f_make_from_native_array">make_from_native_array</A> (an_array: <B>like</B> <A HREF="../base/special_flatshort.html#f_native_array">native_array</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Create a special object from </FONT>`an_array'<FONT COLOR="red">.</FONT>
        <B>require</B>
            is_dotnet: {<A HREF="../base/platform_flatshort.html">PLATFORM</A>}.<A HREF="../base/platform_flatshort.html#f_is_dotnet">is_dotnet</A>
            an_array_not_void: an_array /= <B>Void</B>
</A>
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Access</FONT>

    <A NAME="f_base_address"><A HREF="../base/special_flatshort.html#f_base_address">base_address</A>: <A HREF="../base/pointer_flatshort.html">POINTER</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Address of element at position </FONT>`0'
        <B>require</B>
            not_dotnet: <B>not</B> {<A HREF="../base/platform_flatshort.html">PLATFORM</A>}.<A HREF="../base/platform_flatshort.html#f_is_dotnet">is_dotnet</A>
        <B>ensure</B>
            base_address_not_null: <B>Result</B> /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
</A>
    <A NAME="f_generating_type"><A HREF="../base/any_flatshort.html#f_generating_type">generating_type</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Name of current object's generating type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (type of which it is a direct instance)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            generating_type_not_void: <B>Result</B> /= <B>Void</B>
            generating_type_not_empty: <B>not</B> <B>Result</B>.<A HREF="../base/finite_flatshort.html#f_is_empty">is_empty</A>
</A>
    <A NAME="f_generator"><A HREF="../base/any_flatshort.html#f_generator">generator</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Name of current object's generating class</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (base class of the type of which it is a direct instance)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            generator_not_void: <B>Result</B> /= <B>Void</B>
            generator_not_empty: <B>not</B> <B>Result</B>.<A HREF="../base/finite_flatshort.html#f_is_empty">is_empty</A>
</A>
    <A NAME="f_index_of"><A HREF="../base/special_flatshort.html#f_index_of">index_of</A> (v: T; start_position: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Index of first occurrence of item identical to </FONT>`v'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> -1 if none.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Use object equality for comparison.)</FONT>
        <B>require</B>
            valid_start_position: start_position &gt;= 0
        <B>ensure</B>
            found_or_not_found: <B>Result</B> = -1 <B>or else</B> (<B>Result</B> &gt;= 0 <B>and then</B> <B>Result</B> &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>)
</A>
    <A NAME="f_item"><B>item</B> <B>alias</B> "[]" (i: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): T <B>assign</B> <A HREF="../base/special_flatshort.html#f_put">put</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Item at </FONT>`i'<FONT COLOR="red">-th position</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (indices begin at 0)</FONT>
        <B>require</B>
            index_big_enough: i &gt;= 0
            index_small_enough: i &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>
</A>
    <A NAME="f_item_address"><A HREF="../base/special_flatshort.html#f_item_address">item_address</A> (i: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <A HREF="../base/pointer_flatshort.html">POINTER</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Address of element at position </FONT>`i'
        <B>require</B>
            not_dotnet: <B>not</B> {<A HREF="../base/platform_flatshort.html">PLATFORM</A>}.<A HREF="../base/platform_flatshort.html#f_is_dotnet">is_dotnet</A>
            index_big_enough: i &gt;= 0
            index_small_enough: i &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>
        <B>ensure</B>
            element_address_not_null: <B>Result</B> /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
</A>
    <A NAME="f_native_array"><A HREF="../base/special_flatshort.html#f_native_array">native_array</A>: ?<A HREF="../base/native_array_flatshort.html">NATIVE_ARRAY</A> [T]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Only for compatibility with .NET</FONT>
        <B>require</B>
            is_dotnet: {<A HREF="../base/platform_flatshort.html">PLATFORM</A>}.<A HREF="../base/platform_flatshort.html#f_is_dotnet">is_dotnet</A>
</A>
    <A NAME="f_infix "@""><B>infix</B> "@" (i: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): T
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Item at </FONT>`i'<FONT COLOR="red">-th position</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (indices begin at 0)</FONT>
        <B>require</B>
            index_big_enough: i &gt;= 0
            index_small_enough: i &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Measurement</FONT>

    <A NAME="f_capacity"><A HREF="../base/special_flatshort.html#f_capacity">capacity</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Count of special area</FONT>
        <B>ensure</B>
            capacity_non_negative: <B>Result</B> &gt;= 0
</A>
    <A NAME="f_count"><A HREF="../base/special_flatshort.html#f_count">count</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Count of special area</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/abstract_special_flatshort.html">ABSTRACT_SPECIAL</A>
            count_non_negative: <B>Result</B> &gt;= 0
</A>
    <A NAME="f_lower"><A HREF="../base/special_flatshort.html#f_lower">lower</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A> <B>is</B> 0</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Minimum index of Current</FONT>

    <A NAME="f_upper"><A HREF="../base/special_flatshort.html#f_upper">upper</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Maximum index of Current</FONT>
        <B>ensure</B>
            definition: <A HREF="../base/special_flatshort.html#f_lower">lower</A> &lt;= <B>Result</B> + 1
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Comparison</FONT>

    <A NAME="f_deep_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> or attached to isomorphic object structures?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            shallow_implies_deep: <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (some, other) <B>implies</B> <B>Result</B>
            both_or_none_void: (some = <B>Void</B>) <B>implies</B> (<B>Result</B> = (other = <B>Void</B>))
            same_type: (<B>Result</B> <B>and</B> (some /= <B>Void</B>)) <B>implies</B> (other /= <B>Void</B> <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other))
            symmetric: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (other, some)
</A>
    <A NAME="f_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_equal">equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void or attached</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> to objects considered equal?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (some = <B>Void</B> <B>and</B> other = <B>Void</B>) <B>or else</B> ((some /= <B>Void</B> <B>and</B> other /= <B>Void</B>) <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (other))
</A>
    <A NAME="f_is_deep_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_is_deep_equal">is_deep_equal</A> (other: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T]): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`Current'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> attached to isomorphic object structures?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            shallow_implies_deep: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other) <B>implies</B> <B>Result</B>
            same_type: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_is_deep_equal">is_deep_equal</A> (<B>Current</B>)
</A>
    <A NAME="f_is_equal"><A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (other: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T]): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is </FONT>`other'<FONT COLOR="red"> attached to an object considered</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> equal to current object?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (<B>Current</B>)
            consistent: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other) <B>implies</B> <B>Result</B>
</A>
    <A NAME="f_standard_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void or attached to</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> field-by-field identical objects of the same type?</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Always uses default object comparison criterion.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (some = <B>Void</B> <B>and</B> other = <B>Void</B>) <B>or else</B> ((some /= <B>Void</B> <B>and</B> other /= <B>Void</B>) <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other))
</A>
    <A NAME="f_standard_is_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T]): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is </FONT>`other'<FONT COLOR="red"> attached to an object of the same type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> as current object, and field-by-field identical to it?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            same_type: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (<B>Current</B>)
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Status report</FONT>

    <A NAME="f_all_default"><A HREF="../base/special_flatshort.html#f_all_default">all_default</A> (start_index, end_index: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are all items between index </FONT>`start_index'<FONT COLOR="red"> and </FONT>`end_index'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> set to default values?</FONT>
        <B>require</B>
            start_index_non_negative: start_index &gt;= 0
            start_index_not_too_big: start_index &lt;= end_index + 1
            end_index_valid: end_index &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>
        <B>ensure</B>
            valid_on_empty_area: (end_index &lt; start_index) <B>implies</B> <B>Result</B>
</A>
    <A NAME="f_conforms_to"><A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (other: <A HREF="../base/any_flatshort.html">ANY</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Does type of current object conform to type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of </FONT>`other'<FONT COLOR="red"> (as per Eiffel: The Language, chapter 13)?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
</A>
    <A NAME="f_same_items"><A HREF="../base/special_flatshort.html#f_same_items">same_items</A> (other: <B>like</B> <B>Current</B>; start_index, end_index: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Do all items between index </FONT>`start_index'<FONT COLOR="red"> and </FONT>`end_index'<FONT COLOR="red"> have</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> same value?</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Use reference equality for comparison.)</FONT>
        <B>require</B>
            start_index_non_negative: start_index &gt;= 0
            start_index_not_too_big: start_index &lt;= end_index + 1
            end_index_valid: end_index &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>
            other_not_void: other /= <B>Void</B>
            other_has_enough_items: end_index &lt; other.<A HREF="../base/special_flatshort.html#f_count">count</A>
        <B>ensure</B>
            valid_on_empty_area: (end_index &lt; start_index) <B>implies</B> <B>Result</B>
</A>
    <A NAME="f_same_type"><A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other: <A HREF="../base/any_flatshort.html">ANY</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is type of current object identical to type of </FONT>`other'<FONT COLOR="red">?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (<A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (other) <B>and</B> other.<A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (<B>Current</B>))
</A>
    <A NAME="f_valid_index"><A HREF="../base/special_flatshort.html#f_valid_index">valid_index</A> (i: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is </FONT>`i'<FONT COLOR="red"> within the bounds of Current?</FONT>
        <B>ensure</B>
            definition: <B>Result</B> = ((0 &lt;= i) <B>and</B> (i &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>))
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Element change</FONT>

    <A NAME="f_copy_data"><A HREF="../base/special_flatshort.html#f_copy_data">copy_data</A> (other: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T]; source_index, destination_index, n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy </FONT>`n'<FONT COLOR="red"> elements of </FONT>`other'<FONT COLOR="red"> from </FONT>`source_index'<FONT COLOR="red"> position to Current at</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> </FONT>`destination_index'<FONT COLOR="red">. Other elements of Current remain unchanged.</FONT>
        <B>require</B>
            other_not_void: other /= <B>Void</B>
            source_index_non_negative: source_index &gt;= 0
            destination_index_non_negative: destination_index &gt;= 0
            n_non_negative: n &gt;= 0
            n_is_small_enough_for_source: source_index + n &lt;= other.<A HREF="../base/special_flatshort.html#f_count">count</A>
            n_is_small_enough_for_destination: destination_index + n &lt;= <A HREF="../base/special_flatshort.html#f_count">count</A>
            same_type: other.<A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (<B>Current</B>)
</A>
    <A NAME="f_fill_with"><A HREF="../base/special_flatshort.html#f_fill_with">fill_with</A> (v: T; start_index, end_index: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Set items between </FONT>`start_index'<FONT COLOR="red"> and </FONT>`end_index'<FONT COLOR="red"> with </FONT>`v'<FONT COLOR="red">.</FONT>
        <B>require</B>
            start_index_non_negative: start_index &gt;= 0
            start_index_not_too_big: start_index &lt;= end_index + 1
            end_index_valid: end_index &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>
</A>
    <A NAME="f_move_data"><A HREF="../base/special_flatshort.html#f_move_data">move_data</A> (source_index, destination_index, n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move </FONT>`n'<FONT COLOR="red"> elements of Current from </FONT>`source_start'<FONT COLOR="red"> position to </FONT>`destination_index'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Other elements remain unchanged.</FONT>
        <B>require</B>
            source_index_non_negative: source_index &gt;= 0
            destination_index_non_negative: destination_index &gt;= 0
            n_non_negative: n &gt;= 0
            n_is_small_enough_for_source: source_index + n &lt;= <A HREF="../base/special_flatshort.html#f_count">count</A>
            n_is_small_enough_for_destination: destination_index + n &lt;= <A HREF="../base/special_flatshort.html#f_count">count</A>
</A>
    <A NAME="f_non_overlapping_move"><A HREF="../base/special_flatshort.html#f_non_overlapping_move">non_overlapping_move</A> (source_index, destination_index, n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move </FONT>`n'<FONT COLOR="red"> elements of Current from </FONT>`source_start'<FONT COLOR="red"> position to </FONT>`destination_index'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Other elements remain unchanged.</FONT>
        <B>require</B>
            source_index_non_negative: source_index &gt;= 0
            destination_index_non_negative: destination_index &gt;= 0
            n_non_negative: n &gt;= 0
            different_source_and_target: source_index /= destination_index
            non_overlapping: (source_index &lt; destination_index <B>implies</B> source_index + n &lt; destination_index) <B>or</B> (source_index &gt; destination_index <B>implies</B> destination_index + n &lt; source_index)
            n_is_small_enough_for_source: source_index + n &lt;= <A HREF="../base/special_flatshort.html#f_count">count</A>
            n_is_small_enough_for_destination: destination_index + n &lt;= <A HREF="../base/special_flatshort.html#f_count">count</A>
</A>
    <A NAME="f_overlapping_move"><A HREF="../base/special_flatshort.html#f_overlapping_move">overlapping_move</A> (source_index, destination_index, n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move </FONT>`n'<FONT COLOR="red"> elements of Current from </FONT>`source_start'<FONT COLOR="red"> position to </FONT>`destination_index'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Other elements remain unchanged.</FONT>
        <B>require</B>
            source_index_non_negative: source_index &gt;= 0
            destination_index_non_negative: destination_index &gt;= 0
            n_non_negative: n &gt;= 0
            different_source_and_target: source_index /= destination_index
            n_is_small_enough_for_source: source_index + n &lt;= <A HREF="../base/special_flatshort.html#f_count">count</A>
            n_is_small_enough_for_destination: destination_index + n &lt;= <A HREF="../base/special_flatshort.html#f_count">count</A>
</A>
    <A NAME="f_put"><A HREF="../base/special_flatshort.html#f_put">put</A> (v: T; i: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Replace </FONT>`i'<FONT COLOR="red">-th item by </FONT>`v'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Indices begin at 0.)</FONT>
        <B>require</B>
            index_big_enough: i &gt;= 0
            index_small_enough: i &lt; <A HREF="../base/special_flatshort.html#f_count">count</A>
        <B>ensure</B>
            inserted: <A HREF="../base/special_flatshort.html#f_item">item</A> (i) = v
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Removal</FONT>

    <A NAME="f_clear_all"><A HREF="../base/special_flatshort.html#f_clear_all">clear_all</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Reset all items to default values.</FONT>
        <B>ensure</B>
            cleared: <A HREF="../base/special_flatshort.html#f_all_default">all_default</A> (0, <A HREF="../base/special_flatshort.html#f_upper">upper</A>)
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Resizing</FONT>

    <A NAME="f_aliased_resized_area"><A HREF="../base/special_flatshort.html#f_aliased_resized_area">aliased_resized_area</A> (n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <B>like</B> <B>Current</B>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Try to resize </FONT>`Current'<FONT COLOR="red"> with a count of </FONT>`n'<FONT COLOR="red">, if not</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> possible a new copy</FONT>
        <B>require</B>
            valid_new_count: n &gt; <A HREF="../base/special_flatshort.html#f_count">count</A>
        <B>ensure</B>
            result_not_void: <B>Result</B> /= <B>Void</B>
            new_count: <B>Result</B>.<A HREF="../base/special_flatshort.html#f_count">count</A> = n
</A>
    <A NAME="f_resized_area"><A HREF="../base/special_flatshort.html#f_resized_area">resized_area</A> (n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <B>like</B> <B>Current</B>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Create a copy of Current with a count of </FONT>`n'
        <B>require</B>
            n_non_negative: n &gt;= 0
        <B>ensure</B>
            result_not_void: <B>Result</B> /= <B>Void</B>
            result_different_from_current: <B>Result</B> /= <B>Current</B>
            new_count: <B>Result</B>.<A HREF="../base/special_flatshort.html#f_count">count</A> = n
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Duplication</FONT>

    <A NAME="f_copy"><A HREF="../base/any_flatshort.html#f_copy">copy</A> (other: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T])
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Update current object using fields of object attached</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> to </FONT>`other'<FONT COLOR="red">, so as to yield equal objects.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
            type_identity: <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            is_equal: <A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (other)
</A>
    <A NAME="f_deep_copy"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_copy">deep_copy</A> (other: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T])
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Effect equivalent to that of:</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red">		</FONT><A HREF="../base/any_flatshort.html#f_copy">copy</A><FONT COLOR="red"> (</FONT>`other'<FONT COLOR="red"> . </FONT><A HREF="../base/any_flatshort.html#f_deep_twin">deep_twin</A><FONT COLOR="red">)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            deep_equal: <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (<B>Current</B>, other)
</A>
    <A NAME="f_deep_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_twin">deep_twin</A>: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object structure recursively duplicated from Current.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            deep_twin_not_void: <B>Result</B> /= <B>Void</B>
            deep_equal: <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (<B>Current</B>, <B>Result</B>)
</A>
    <A NAME="f_standard_copy"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_copy">standard_copy</A> (other: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T])
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy every field of </FONT>`other'<FONT COLOR="red"> onto corresponding field</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
            type_identity: <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            is_standard_equal: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other)
</A>
    <A NAME="f_standard_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_twin">standard_twin</A>: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object field-by-field identical to </FONT>`other'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Always uses default copying semantics.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            standard_twin_not_void: <B>Result</B> /= <B>Void</B>
            equal: <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (<B>Result</B>, <B>Current</B>)
</A>
    <A NAME="f_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_twin">twin</A>: <A HREF="../base/special_flatshort.html">SPECIAL</A> [T]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object equal to </FONT>`Current'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> </FONT><A HREF="../base/any_flatshort.html#f_twin">twin</A><FONT COLOR="red"> calls </FONT><A HREF="../base/any_flatshort.html#f_copy">copy</A><FONT COLOR="red">; to change copying/twining semantics, redefine </FONT><A HREF="../base/any_flatshort.html#f_copy">copy</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            twin_not_void: <B>Result</B> /= <B>Void</B>
            is_equal: <B>Result</B>.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (<B>Current</B>)
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Basic operations</FONT>

    <A NAME="f_default"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_default">default</A>: ?<A HREF="../base/special_flatshort.html">SPECIAL</A> [T]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Default value of object's type</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_default_pointer"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>: <A HREF="../base/pointer_flatshort.html">POINTER</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Default value of type </FONT>`POINTER'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Avoid the need to write </FONT>`p'<FONT COLOR="red">.</FONT><A HREF="../base/any_flatshort.html#f_default">default</A><FONT COLOR="red"> for</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> some </FONT>`p'<FONT COLOR="red"> of type </FONT>`POINTER'<FONT COLOR="red">.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_default_rescue"><A HREF="../base/any_flatshort.html#f_default_rescue">default_rescue</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Process exception for routines with no Rescue clause.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Default: do nothing.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_do_nothing"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_do_nothing">do_nothing</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Execute a null action.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Output</FONT>

    <A NAME="f_io"><A HREF="../base/any_flatshort.html#f_io">io</A>: <A HREF="../base/std_files_flatshort.html">STD_FILES</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Handle to standard file setup</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            io_not_void: <B>Result</B> /= <B>Void</B>
</A>
    <A NAME="f_out"><A HREF="../base/any_flatshort.html#f_out">out</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New string containing terse printable representation</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            out_not_void: <B>Result</B> /= <B>Void</B>
</A>
    <A NAME="f_print"><A HREF="../base/any_flatshort.html#f_print">print</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Write terse external representation of </FONT>`some'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> on standard output.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_tagged_out"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_tagged_out">tagged_out</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New string containing terse printable representation</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            tagged_out_not_void: <B>Result</B> /= <B>Void</B>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Platform</FONT>

    <A NAME="f_operating_environment"><A HREF="../base/any_flatshort.html#f_operating_environment">operating_environment</A>: <A HREF="../base/operating_environment_flatshort.html">OPERATING_ENVIRONMENT</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Objects available from the operating system</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            operating_environment_not_void: <B>Result</B> /= <B>Void</B>
</A>    
<B>invariant</B>
        <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
    reflexive_equality: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (<B>Current</B>)
    reflexive_conformance: <A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (<B>Current</B>)

<B>end</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">class </FONT><A HREF="../base/special_flatshort.html">SPECIAL</A><TABLE BORDER="1" ALIGN="CENTER"><TR><TD><A HREF="../class_list.html">Classes</A></TD><TD><A HREF="../cluster_list.html">Clusters</A></TD><TD><A HREF="../cluster_hierarchy.html">Cluster hierarchy</A></TD><TD><A HREF="special_chart.html">Chart</A></TD><TD><A HREF="special_links.html">Relations</A></TD><TD>Flat contracts</TD></TR></TABLE></PRE>
<P ALIGN="CENTER"> &#045;&#045; Generated by ISE Eiffel &#045;&#045 </P>
<P ALIGN="CENTER">For more details: <A HREF="http://www.eiffel.com">www.eiffel.com</A></P>
</BODY>
</HTML>

